<?php

namespace Admin\Controller;

use Think\Controller;

class FileController extends Controller {

    //上传文件
    public function uploadSSLCret() {
        $return = array('status' => 1, 'info' => '上传成功', 'data' => '');
        /* 调用文件上传组件上传文件 */
        $File = D('File');
        $file_driver = C('DOWNLOAD_UPLOAD_DRIVER');
        $download_upload=array(
        'mimes'    => '', //允许上传的文件MiMe类型
        'maxSize'  => 5*1024*1024, //上传的文件大小限制 (0-不做限制)
        'exts'     => 'pem', //允许上传的文件后缀
        'autoSub'  => true, //自动子目录保存文件
        'subName'  => array('date', 'Y-m-d'), //子目录创建方式，[0]-函数名，[1]-参数，多个参数使用数组
        'rootPath' => './Uploads/Download/', //保存根路径
        'savePath' => '', //保存路径
        'saveName' => array('uniqid', ''), //上传文件命名规则，[0]-函数名，[1]-参数，多个参数使用数组
        'saveExt'  => '', //文件保存后缀，空则使用原后缀
        'replace'  => false, //存在同名是否覆盖
        'hash'     => true, //是否生成hash编码
        'callback' => false, //检测文件是否存在回调函数，如果存在返回文件信息数组
    );
        $info = $File->upload(
                $_FILES, $download_upload, "local", array()
        );

        /* 记录附件信息 */
        if ($info) {
            $return['data'] = $info['download'];
        } else {
            $return['status'] = 0;
            $return['info'] = $File->getError();
        }

        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }

    /**
     * 上传图片
     * @author huajie <banhuajie@163.com>
     */
    public function uploadPicture() {
        $PICTURE_UPLOAD = array(
            'mimes' => '', //允许上传的文件MiMe类型
            'maxSize' => 2 * 1024 * 1024, //上传的文件大小限制 (0-不做限制)
            'exts' => 'jpg,gif,png,jpeg', //允许上传的文件后缀
            'autoSub' => true, //自动子目录保存文件
            'subName' => array('date', 'Y-m-d'), //子目录创建方式，[0]-函数名，[1]-参数，多个参数使用数组
            'rootPath' => './uploads/picture/', //保存根路径
            'savePath' => '', //保存路径
            'saveName' => array('uniqid', ''), //上传文件命名规则，[0]-函数名，[1]-参数，多个参数使用数组
            'saveExt' => '', //文件保存后缀，空则使用原后缀
            'replace' => false, //存在同名是否覆盖
            'hash' => true, //是否生成hash编码
            'callback' => false, //检测文件是否存在回调函数，如果存在返回文件信息数组
        );

        $PICTURE_UPLOAD_DRIVER = 'local';
        $UPLOAD_LOCAL_CONFIG = array();
        /* 返回标准数据 */
        $return = array('code' => 1, 'msg' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $Picture = D('Picture');
        $pic_driver = "local";
        $info = $Picture->upload(
                $_FILES, $PICTURE_UPLOAD, $PICTURE_UPLOAD_DRIVER, $UPLOAD_LOCAL_CONFIG
        ); //TODO:上传到远程服务器

        /* 记录图片信息 */
        if ($info) {
            $return['data'] = $info['image'];
            //$return = array_merge($info['image'], $return);
        } else {
            $return['code'] = 0;
            $return['msg'] = $Picture->getError();
        }

        /* 返回JSON数据 */
        $this->ajaxReturn($return);
    }

    /**
     * 上传测试
     */
    public function uploadTxt() {


        $PICTURE_UPLOAD = array(
            'mimes' => '', //允许上传的文件MiMe类型
            'maxSize' => 2 * 1024 * 1024, //上传的文件大小限制 (0-不做限制)
            'exts' => 'txt', //允许上传的文件后缀
            'autoSub' => true, //自动子目录保存文件
            'subName' => array('date', 'Y-m-d'), //子目录创建方式，[0]-函数名，[1]-参数，多个参数使用数组
            'rootPath' => './uploads/picture/', //保存根路径
            'savePath' => '', //保存路径
            'saveName' => array('uniqid', ''), //上传文件命名规则，[0]-函数名，[1]-参数，多个参数使用数组
            'saveExt' => '', //文件保存后缀，空则使用原后缀
            'replace' => false, //存在同名是否覆盖
            'hash' => true, //是否生成hash编码
            'callback' => false, //检测文件是否存在回调函数，如果存在返回文件信息数组
        );

        $PICTURE_UPLOAD_DRIVER = 'local';
        $UPLOAD_LOCAL_CONFIG = array();
        /* 返回标准数据 */
        $return = array('code' => 1, 'msg' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $Picture = D('Picture');
        $pic_driver = "local";
        $info = $Picture->upload(
                $_FILES, $PICTURE_UPLOAD, $PICTURE_UPLOAD_DRIVER, $UPLOAD_LOCAL_CONFIG
        ); //TODO:上传到远程服务器

        if ($info) {


            $fp = fopen("." . $info["image"]["path"], "r");
            if ($fp) {
                for ($i = 1; !feof($fp); $i++) {
                    $line = fgets($fp);

                    //判断是否是email格式
                    if (!ereg('^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+', $line)) {
                        $this->error("第" . $i . "行：电子邮件格式错误");
                        break;
                    }
                    M("Mail")->add(array("email" => $line));
                }
                $this->success("上传成功");
            } else {
                $this->error("上传失败");
            }
            fclose($fp);
        } else {
            $return['status'] = 0;
            $return['info'] = $Picture->getError();
        }
    }
    /***
     * 上传视频
     */
    public function uploadVideo(){
        $PICTURE_UPLOAD = array(
            'mimes' => '', //允许上传的文件MiMe类型
            'maxSize' => 2 * 1024 * 1024, //上传的文件大小限制 (0-不做限制)
            //'exts' => 'txt', //允许上传的文件后缀
            'autoSub' => true, //自动子目录保存文件
            'subName' => array('date', 'Y-m-d'), //子目录创建方式，[0]-函数名，[1]-参数，多个参数使用数组
            'rootPath' => './uploads/picture/', //保存根路径
            'savePath' => '', //保存路径
            'saveName' => array('uniqid', ''), //上传文件命名规则，[0]-函数名，[1]-参数，多个参数使用数组
            'saveExt' => '', //文件保存后缀，空则使用原后缀
            'replace' => false, //存在同名是否覆盖
            'hash' => true, //是否生成hash编码
            'callback' => false, //检测文件是否存在回调函数，如果存在返回文件信息数组
        );

        $PICTURE_UPLOAD_DRIVER = 'local';
        $UPLOAD_LOCAL_CONFIG = array();
        /* 返回标准数据 */
        $return = array('code' => 1, 'msg' => '上传成功', 'data' => '');

        /* 调用文件上传组件上传文件 */
        $Picture = D('Picture');
        $pic_driver = "local";
        $info = $Picture->upload(
                $_FILES, $PICTURE_UPLOAD, $PICTURE_UPLOAD_DRIVER, $UPLOAD_LOCAL_CONFIG
        ); //TODO:上传到远程服务器

        if ($info) {
             $return['data'] = $info['image'];
            
        } else {
            $return['status'] = 0;
            $return['info'] = $Picture->getError();
        }
         $this->ajaxReturn($return);
    }

}
